parameter. Remove it to make it obvious that it can only be called for
the currently-executing vcpu.
Signed-off-by: Keir Fraser <keir@xensource.com>
switch ( p->state )
{
case STATE_IORESP_READY: /* IORESP_READY -> NONE */
- hvm_io_assist(v);
+ hvm_io_assist();
break;
case STATE_IOREQ_READY: /* IOREQ_{READY,INPROCESS} -> IORESP_READY */
case STATE_IOREQ_INPROCESS:
}
}
-void hvm_io_assist(struct vcpu *v)
+void hvm_io_assist(void)
{
vcpu_iodata_t *vio;
ioreq_t *p;
struct cpu_user_regs *regs;
struct hvm_io_op *io_opp;
unsigned long gmfn;
+ struct vcpu *v = current;
struct domain *d = v->domain;
io_opp = &v->arch.hvm_vcpu.io_op;
if ( hvm_portio_intercept(p) )
{
p->state = STATE_IORESP_READY;
- hvm_io_assist(v);
+ hvm_io_assist();
return;
}
if ( hvm_mmio_intercept(p) || hvm_buffered_io_intercept(p) )
{
p->state = STATE_IORESP_READY;
- hvm_io_assist(v);
+ hvm_io_assist();
return;
}
void send_timeoffset_req(unsigned long timeoff);
extern void handle_mmio(unsigned long gpa);
extern void hvm_interrupt_post(struct vcpu *v, int vector, int type);
-extern void hvm_io_assist(struct vcpu *v);
+extern void hvm_io_assist(void);
#endif /* __ASM_X86_HVM_IO_H__ */